home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr11
/
nr3_tech.zip
/
INSTMEM.TXT
< prev
next >
Wrap
Text File
|
1993-06-18
|
3KB
|
69 lines
Instancing and Instanced UMBs
A little known and little used feature that was added to
Windows 3.1 is the ability to instance TSRs and to create
instanced Upper memory.
Instanced Upper memory is upper memory that is unique to
each DOS box (VM). If upper memory is instanced drivers and
TSRs can be loaded high in the VMs, and each VM can have
different things loaded in it's UMBs. So, one VM could have
a pop-up calendar loaded high for use with a project
manager, while another VM could have a pop-up speller loaded
for use with the spreadsheet running in that VM.
Instancing TSRs involves creating unique copies of TSRs for
each VM that is created. These copies are created
dynamically when the VM is first launched. This is
primarily useful for drivers, such as ANSI.SYS, that are
loaded before Windows, and need to operate independently in
each VM. For example, ANSI.SYS should be instanced so that
it maintains a unique cursor position, screen color, screen
size and so on, for each VM. This way each VM can maintain
it's own copy of ANSI running independently.
How to instance Drivers and TSRs.
To tell windows to instance a Driver, place the command
"LOCAL=driver-name" on a line by itself in the [386Enh]
section of the SYSTEM.INI. The driver name is the device
name of the device as it appears in the device driver chain.
This can be ascertained by using the MEM /D command, or by
using a system analysis program such as Discover or MSD.
To instance a TSR place (or add) the command "LocalTSRs=" in
the [NonWindowsApp] section of the SYSTEM.INI. List the
name of the TSR's EXE file. For example, to instance
Sidekick (SK.COM) and Turbo Lightning (LIGHT.EXE), you would
say "LocalTSRS=SK,LIGHT"
How to create instanced upper memory.
To create instanced upper memory, place the command
"LocalLoadhigh=on" in the [386Enh] section of the Windows
SYSTEM.INI file. Keep in mind though that Windows makes
extensive use of upper memory, and this command prevents
Windows from using Upper memory for itself.
If you do want to use local UMBs, be sure to use a TSR such
as Netroom's WINMEM to reserve some upper memory for
Windows' use. Under DOS 6 you can also use the EMM386 WIN=
command, or Netroom's WINMEM=. This will reserve some
memory for Windows to use as global memory and for
translation buffers.
Instancing is dangerous.
Having TSRs instanced is dangerous and, if you are not very,
careful you can lose data. Think of the following:
SideKick is loaded and is instanced. You pop up sidekick in
one VM, enter some data and save it, say in the calendar.
Switch to another VM enter some other data and save it. The
data you saved in the first instance is overwritten by the
data from the second instance, and is gone forever. So
although instancing can be useful, as in ANSI.SYS, it can
also be deadly (think of instancing DoubleSpace's DBLSSYS$).
Copyright (c) 1993, Helix Software Co., Inc.